﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:m="clr-namespace:Signum.Windows"
    xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
	<Style x:Key="ComboBoxFocusVisual">
		<Setter Property="Control.Template">
			<Setter.Value>
				<ControlTemplate>
					<Rectangle SnapsToDevicePixels="true" Margin="4,4,21,4" Stroke="Black" StrokeDashArray="1 2" StrokeThickness="1" />
				</ControlTemplate>
			</Setter.Value>
		</Setter>
	</Style>
	<SolidColorBrush x:Key="ButtonNormalBorder" Color="#FF707070"/>
	<LinearGradientBrush x:Key="ButtonNormalBackground" EndPoint="0,1" StartPoint="0,0">
		<GradientStop Color="#F3F3F3" Offset="0" />
		<GradientStop Color="#EBEBEB" Offset="0.5" />
		<GradientStop Color="#DDDDDD" Offset="0.5" />
		<GradientStop Color="#CDCDCD" Offset="1" />
	</LinearGradientBrush>
	<Geometry x:Key="DownArrowGeometry">M 0 0 L 3.5 4 L 7 0 Z</Geometry>
	<LinearGradientBrush x:Key="TextBoxBorder" EndPoint="0,20" StartPoint="0,0" MappingMode="Absolute">
		<GradientStop Color="#ABADB3" Offset="0.05" />
		<GradientStop Color="#E2E3EA" Offset="0.07" />
		<GradientStop Color="#E3E9EF" Offset="1" />
	</LinearGradientBrush>
	<Style x:Key="ComboBoxEditableTextBox" TargetType="{x:Type TextBox}">
		<Style.Triggers>
			<Trigger Property="IsReadOnly" Value="true">
				<Setter Property="Background" Value="Transparent" />
			</Trigger>
			<Trigger Property="Validation.HasError" Value="true">
				<Setter Property="ToolTip" Value="{Binding Path=(Validation.Errors), Converter={x:Static m:Converters.ErrorListToToolTipString}, RelativeSource={x:Static RelativeSource.Self}}" />
			</Trigger>
		</Style.Triggers>
	</Style>
	<Style x:Key="ComboBoxReadonlyToggleButton" TargetType="{x:Type ToggleButton}">
		<Setter Property="OverridesDefaultStyle" Value="true" />
		<Setter Property="IsTabStop" Value="false" />
		<Setter Property="Focusable" Value="false" />
		<Setter Property="Template">
			<Setter.Value>
				<ControlTemplate TargetType="{x:Type ToggleButton}">
					<Microsoft_Windows_Themes:ButtonChrome x:Name="Chrome" SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderPressed="{TemplateBinding IsPressed}">
						<Grid HorizontalAlignment="Right" Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}">
							<Path x:Name="Arrow" HorizontalAlignment="Center" Margin="3,1,0,0" VerticalAlignment="Center" Fill="Black"  Data="{StaticResource DownArrowGeometry}" />
						</Grid>
					</Microsoft_Windows_Themes:ButtonChrome>
					<ControlTemplate.Triggers>
						<Trigger Property="IsChecked" Value="true">
							<Setter TargetName="Chrome" Property="RenderPressed" Value="true" />
						</Trigger>
						<Trigger Property="IsEnabled" Value="false">
							<Setter TargetName="Arrow" Property="Fill" Value="#AFAFAF" />
						</Trigger>
					</ControlTemplate.Triggers>
				</ControlTemplate>
			</Setter.Value>
		</Setter>
	</Style>
	<Style TargetType="{x:Type m:PickerBase}">
		<Setter Property="FocusVisualStyle" Value="{StaticResource ComboBoxFocusVisual}"/>
		<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
		<Setter Property="Background" Value="{StaticResource ButtonNormalBackground}"/>
		<Setter Property="BorderBrush" Value="{StaticResource ButtonNormalBorder}"/>
		<Setter Property="BorderThickness" Value="1" />
		<Setter Property="Padding" Value="2,2" />
		<Setter Property="Template">
			<Setter.Value>
				<ControlTemplate TargetType="{x:Type m:PickerBase}">
					<Grid x:Name="MainGrid" SnapsToDevicePixels="true">
						<Grid.ColumnDefinitions>
							<ColumnDefinition Width="*" />
							<ColumnDefinition Width="15.976"/>
						</Grid.ColumnDefinitions>
						<Popup x:Name="PART_Popup" AllowsTransparency="true" Placement="Bottom" 
						PopupAnimation="Fade"
						Margin="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch"
						IsOpen="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}">
							<Microsoft_Windows_Themes:SystemDropShadowChrome x:Name="Shdw" Color="Transparent" >
								<Border x:Name="DropDownBorder" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" 
								BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" BorderThickness="0,0,0,0">
									<ContentPresenter Content="{TemplateBinding PopupContent}" />
								</Border>
							</Microsoft_Windows_Themes:SystemDropShadowChrome>
						</Popup>
						<ToggleButton x:Name="PART_Button" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" 
						Style="{StaticResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" 
						IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" />
						<ContentPresenter Content="{TemplateBinding ButtonContent}" HorizontalAlignment="Stretch" Margin="{TemplateBinding Padding}" d:LayoutOverrides="GridBox" />
					</Grid>
					<ControlTemplate.Triggers>
						<Trigger Property="IsEnabled" Value="false">
							<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"  />
							<Setter Property="Background" Value="#FFF4F4F4" />
						</Trigger>
					</ControlTemplate.Triggers>
				</ControlTemplate>
			</Setter.Value>
		</Setter>
		<Style.Triggers>
			<Trigger Property="IsEditable" Value="true">
				<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorder}" />
				<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
				<Setter Property="IsTabStop" Value="false" />
				<Setter Property="Padding" Value="3" />
			</Trigger>
		</Style.Triggers>
	</Style>
</ResourceDictionary>